#ifndef __iic_H
#define __iic_H

#include <public.h>

struct IIC
{
    void (*SDA_IN)(void);
    void (*SDA_OUT)(void);
    void (*SCL_L)(void);
    void (*SCL_H)(void);
    void (*SDA_L)(void);
    void (*SDA_H)(void);
    uint8_t (*READ_SDA)(void);
};

void iic_sw(struct IIC *S);
uint8_t iic_rw(uint8_t *data_buff, uint8_t byte_quantity, uint8_t reg_address, uint8_t slave_address, uint8_t control_byte);
#endif
